GitHubのIssue formsを試してみた
はじめに
GitHubではIssueを起票する際にフォームを利用できます。結構前からありますが、今まで使ったことがなかったので、試してみました。
※この機能、いつまで経ってもbeta版な気がします。
前提
Issue formsを利用する際のIssueのテンプレートは、 .github/ISSUE_TEMPLATE/ の配下に置く必要があります。 今回はdemo_issue_template.yamlという名前で作ってみます。
また、今回はライトな使い方を想定してChrome上のGitHubエディタで作成していきます。もちろんcloneしてきてlocalで作成してからpushすることも可能です。
作成
まずはGitHub Docsに置いてあるサンプルで作成してみます。そのままだとユーザー名やらプロジェクト名やらが合っていないのでここだけ修正してます。
ファイルを作成します。
ファイル名はスラッシュでパスを切ってこんな感じで作成します。うまくいってるとファイル名まで入力したときにLooks like this file is an issue template... と言われます。
これでテンプレートができました。Issueを作成してみます。New Issueを押すとこのように使用するテンプレートを選択できます。作成したBug Reportをクリックします。
無事にIssue formsが表示されました!
所感
書式を合わせるために余計な時間を使う必要がないし、inputやdropdownなんかは微妙な表記の揺れみたいなやつを防げそうだなと感じました。 また、うまくrequiredを使っていけばIssueの内容について開発者と品質担当者の余計なやり取りを減らしたり、チームでの体裁を担保したりできそうです。
活用してみる
この機能、実はGitHub Projectsからも呼び出すことができます。Projectsから使えると、スクラムボードなんかにも活用できそうです。「開発に必要なもの全部GitHubに載せてしまいたい」といった需要があるチームにはいい話かなって気がします。
こんな感じのテンプレートを作成しました。内容は本筋じゃないので適当です。
name: PBI Issue description: Product Backlog Item. title: "[PBI]: " labels: ["PBI"] projects: ["Yamana5/1"] assignees: - Yamana5 body: - type: textarea id: task attributes: label: タスク - type: input id: cost attributes: label: 工数 [h] placeholder: 0.5, 1, 3... validations: required: true - type: textarea id: todo attributes: label: タスクリスト
合わせて、リポジトリにProjectsをリンクします。
この状態で、Projectsに任意のテンプレートからボード置いたりして、issueを追加します。
すると、紐付けたリポジトリのIssueテンプレートを選択できます。
モーダルの中でIssue Formsを利用できました!
終わりに
GitHubのサンプルなんかをみると、OSSのBugレポートみたいなユースケースを期待しているのかな?という気がしましたが、チーム開発でも十分活用できそうだなと思いました。